home *** CD-ROM | disk | FTP | other *** search
- ;' Based On DMA Monitor - SNG March 1999, HiSoft BASIC, WB2+
- .initalize
- WBStartup:NoCli:CloseEd
- WbToScreen 0
- WBenchToFront_
-
- *scr.Screen=Peek.l(Addr Screen(0)) ; get some screen info
- scrnh.w = *scr\Height
- scrnw.w = *scr\Width
- ;scrnd.w = *scr\Depth
- ;scrnd=1^scrnd
-
- as.s="C:Audioselect"
- name.s=Peek$(Peek.l(FindTask_(0)+$B0)+4)
- title.s=name+" V0.02"
- oldstat.s="0"
-
- If Exists(as)
- picasso.b=True
- Else
- picasso=False
- EndIf
-
- JSR loadprefs
- JSR creategfx
-
- If picasso
- ShapeGadget 0,2,2,$0,0,0,1
- ShapeGadget 0,19,2,$0,1,0,1
- ShapeGadget 0,36,2,$0,2,0,1
- ShapeGadget 0,53,2,$0,3,0,1
-
- Dim cmd.s(3)
- cmd(0)=as+" source=amiga set"
- cmd(1)=as+" source=av set"
- cmd(2)=as+" source=cd set"
- cmd(3)=as+" source=linein set"
- Window 0,xpos.w,ypos.w,72,10,$800,"",1,2,0
- Else
- Window 0,xpos,ypos,72,10,$800,"",1,2
- EndIf
- rp.l=RastPort(0)
-
- ;###[ CREATE OUR CUSTOM DRAGBAR! ]################################
-
- ;--- As David said, this looks bloody horrible, but it works :)
- ;
- DEFTYPE.Gadget *gad
- DEFTYPE.NewGadget ng
-
- ;--- some stuff we need :)
- ;
- *WinAddr = Peek.l(Addr Window(0))
- *VisInfo = GetVisualInfoA_(*scr,0)
- *gad = CreateContext_(&*GadList)
-
- ;--- Create drag bar gadget stuff
- ;
- ng\ng_LeftEdge = 0
- ng\ng_TopEdge = 0
- ng\ng_Width = 72
- ng\ng_Height = 10
- ng\ng_GadgetText= 0
- ng\ng_TextAttr = 0
- ng\ng_GadgetID = -1
-
- ng\ng_Flags = 0
- ng\ng_VisualInfo= *VisInfo
- ng\ng_UserData = 0
- *gad = CreateGadgetA_(#GENERIC_KIND, *gad, &ng, 0)
-
- *gad\Activation = *gad\Activation | #GACT_IMMEDIATE | #GACT_RELVERIFY
- *gad\GadgetType = #GTYP_WDRAGGING | #GTYP_BOOLGADGET
- *gad\Flags = *gad\Flags | #GFLG_GADGHNONE
-
- ;--- Add our custom dragbar to the window...
- ;
- AddGList_ *WinAddr,*GadList,-1,-1,0
- RefreshGList_ *GadList,*WinAddr,0,-1
- GT_RefreshWindow_ *WinAddr,0
-
- ;###[ END CREATE OUR CUSTOM DRAGBAR! ]############################
- SetAPen_ rp,light.w ;draw border round window
- Move_ rp,0,9
- Draw_ rp,0,0
- Draw_ rp,71,0
- SetAPen_ rp,dark.w
- Draw_ rp,71,9
- Draw_ rp,1,9
- SetAPen_ rp,back.w
- RectFill_ rp,1,1,70,8
-
- Repeat
- stat.s=Right$(Bin$(Peek.w($dff002)),4) ; get DMA information
- If stat<>oldstat ; check for change
- chnl.b=4
- For a.b=0 To 3
- If Mid$(stat,chnl,1)="1" ; get channel status
- If lon.w=0 Then RectFill_ rp,17*a+2,3,17*a+18,6
- WBlit 1,17*a+2,2 ; if on activate led
- Else
- If loff.w=0 Then RectFill_ rp,17*a+2,3,17*a+18,6
- WBlit 0,17*a+2,2 ; and draw off led
- EndIf
- chnl-1
- Next
- oldstat.s=stat
- EndIf
- For j=1 To 10 ; pause about 1/5th second
- WaitTOF_
- Next
- If picasso
- If Event=$40
- Execute_ &cmd(GadgetHit),0,0
- oldstat="0"
- EndIf
- EndIf
- k.s=Inkey$
- Until k=Chr$(27) ; quit if esc pressed
-
- JSR saveprefs
-
- RemoveGList_ *WinAddr,*GadList,-1 ; clean up and bye bye...
- FreeGadgets_ *GadList
- FreeVisualInfo_ *VisInfo
- Free Window 0
- End
-
- .loadprefs
- If GetIconObject("PROGDIR:"+name)
- border.w =Val(FindToolValue("BORDER"))
- loff.w =Val(FindToolValue("LIGHTOFF"))
- lon.w =Val(FindToolValue("LIGHTON"))
- hoff.w =Val(FindToolValue("HILIGHTOFF"))
- hon.w =Val(FindToolValue("HILIGHTON"))
- back.w =Val(FindToolValue("BACKGROUND"))
- light.w =Val(FindToolValue("LIGHT"))
- dark.w =Val(FindToolValue("DARK"))
- xpos.w =Val(FindToolValue("XPOS"))
- ypos.w =Val(FindToolValue("YPOS"))
- FreeIconObject
-
- If border > 255 Then border=1
- If loff > 255 Then loff=0
- If lon > 255 Then lon=3
- If hoff > 255 Then hoff=2
- If hon > 255 Then hon=2
- If back > 255 Then back=0
- If light > 255 Then light=2
- If dark > 255 Then dark=1
- If xpos>scrnw-72 Then xpos=scrnw-72
- If ypos>scrnh-10 Then ypos=scrnh-10
-
- Else
- Request "Error...","Can't Open Tooltypes","_Ok"
- End
- EndIf
- RTS
-
- .saveprefs
- If GetIconObject("PROGDIR:"+name)
- ok=SetToolValue ("BORDER",Str$(border))
- If ok=False Then NewToolType "BORDER",Str$(border)
- ok=SetToolValue ("LIGHTOFF",Str$(loff))
- If ok=False Then NewToolType "LIGHTOFF",Str$(loff)
- ok=SetToolValue ("LIGHTON",Str$(lon))
- If ok=False Then NewToolType "LIGHTON",Str$(lon)
- ok=SetToolValue ("HILIGHTOFF",Str$(hoff))
- If ok=False Then NewToolType "HILIGHTOFF",Str$(hoff)
- ok=SetToolValue ("HILIGHTON",Str$(hon))
- If ok=False Then NewToolType "HILIGHTON",Str$(hon)
- ok=SetToolValue ("BACKGROUND",Str$(back))
- If ok=False Then NewToolType "BACKGROUND",Str$(back)
- ok=SetToolValue ("LIGHT",Str$(light))
- If ok=False Then NewToolType "LIGHT",Str$(light)
- ok=SetToolValue ("DARK",Str$(dark))
- If ok=False Then NewToolType "DARK",Str$(dark)
- ok=SetToolValue ("XPOS",Str$(xpos))
- If ok=False Then NewToolType "YPOS",Str$(ypos)
- ok=SetToolValue ("XPOS",Str$(xpos))
- If ok=False Then NewToolType "YPOS",Str$(ypos)
- FreeIconObject
- Else
- Request "Error...","Cannot Save Prefs","Oh Sh*t..."
- EndIf
- RTS
-
- .creategfx
- BitMap 0,16,6,8 ;create led shapes
- Boxf 0,0,15,5,border
- Boxf 1,1,14,4,loff
- Boxf 1,1,2,2,hoff
- GetaShape 0,0,0,16,6
- Boxf 1,1,14,4,lon
- Boxf 1,1,2,2,hon
- GetaShape 1,0,0,16,6
- Free BitMap 0
- RTS
-
-